#!/usr/bin/env bash
#-------------HEADER---------------------------------------------------------------|
#Discography download anon
#----------------------------------------------------------------------------------|
#TERMINAR A PARTE DA PROCURA.


#------Variables-------#

#SETUP-----------
USER="anon"
PASSWORD="949078"
#----------------

#ALL-------------
PRGNAM="AnonDisc"
back_title="AnonDisc v1.0"
export DIALOGRC="settings.anon"
file_origin="lista.anon"  # Lista ORIGINAL
file_temp=$(cat lista.anon | cut -d '%' -f 1,2 | sed 's/%/ /g' > /tmp/lista.anon.temp) # Lista SEM LINKS
filename="/tmp/lista.anon.temp" # Lista Temporaria com links, para download.
tags=()
#---------------

#Check--------
check_dialog=$(which dialog 2>&-)
#-------------

#Colors-------
end="\033[m"
red="\033[31;1m"
#-------------

#----------------------#


#-----FUNCTIONS--------#
status(){
case "$?" in
   255)
			 dialog --title "JÁ VAI?" --backtitle "$back_title" --yesno "Deseja sair?" 0 0
			 [ "$?" = "0" ] && echo -e "${red}AnonDisc <3${end}" && exit 255
   ;;
   1)
		 dialog --title "JÁ VAI?" --backtitle "$back_title" --yesno "Deseja sair?" 0 0
		 [ "$?" = "0" ] && echo -e "${red}AnonDisc <3${end}" && exit 255
   ;;
esac

}

search(){
   search_input=$(
          dialog --stdout \
                 --inputbox "DIGITE O NOME DO ÁLBUM." 10 60)
   search_lower="${search_input,,}"
   cat "$filename" | sed 's/-/ /g' | grep "$search_lower" >arqui1 # Retirando gambi da lista -
   if [ "$?" = "0" ]; then
      search_input_first_character=$(echo $search_input | head -c 1)   
      dialog --backtitle "$back_title" \
             --title "ENCONTREI." \
             --msgbox \
"\nACHEI '$search_input' em meu banco de dados.
\n\n
No menu de álbums você pode apertar a tecla desejada, para buscar pelo nome do álbum!
Identifiquei que a primeira letra do nome do álbum pesquisado é a letra: '$search_input_first_character'.\n
Então no menu principal dos álbums você pode apertar a letra: '$search_input_first_character'
e você será levado para a letra definida.
\n\n
Lembre-se nosso banco de dados está por ordem alfabética!" 15 90
   elif [ "$?" != "0" ]; then
      dialog --backtitle "$backtitle" \
             --title "OPS." \
             --msgbox \
"\n\nNão Encontrei '$search_input' no meu banco de dados.
Talvez você digitou alguma coisa errada :(" 10 50
  fi       
}


#>>>> Seleção de busca
select_search(){
tags=()
while read -r tag; do
  tags+=("${tag} off")
done < "$filename"

while :; do # loop principal
    list=$(dialog --stdout \
                  --title "SELEÇÃO DOS ALBÚMS" \
                  --backtitle "$back_title" \
                  --separate-output \
                  --ok-label "Download" \
                  --cancel-label "Cancelar" \
                  --extra-button --extra-label "Busca" \
                  --checklist \
"Atenção, a lista está categorizada em ordem alfábetica, sendo a primera tag,
'Nome do Álbum' e a segunda tag o nome do 'Artista'.
Utilize o 'DIRECIONAL' para navegar e o 'BACKSPACE' para selecionar o/os álbúms desejados." \
0 0 ${#tags[@]} ${tags[@]})
    [ "$?" = "3" ] && search
    status # Chamada função principal
    [ -z "$list" ] && break
   
    down=$(grep "$list" "$file_origin" | cut -d '%' -f 3,4 | sed 's/%/ /g')
    dialog --title "AGUARDE." --backtitle "$back_title" \
           --infobox \
    "Baixando Arquivos..." 0 0
    wget --user="$USER" --password="$PASSWORD" -P "$dir_music" ${down} >/dev/null 2>/dev/null
    [ "$?" = "0" ] && \
    dialog --title "FEITO!" --backtitle "$back_title" \
           --sleep 5 \
           --infobox \
"Download concluído, com sucesso!
É de extrema importância conferir o arquivo .md5 que está localizado na sua pasta:
$dir_music, para garantir que o arquivo não foi modificado." 10 80
    dialog --title "CONTINUA?" --backtitle "$back_title" --yesno "Deseja fazer mais Downloads?" 0 0
    status # chamada função
done # fecha loop principal
}



#>>>> Seleção principal de albums
select_album(){
tags=()
while read -r tag; do
  tags+=("${tag} off")
done < "$filename"

while :; do # loop principal
    list=$(dialog --stdout \
                  --title "SELEÇÃO DOS ALBÚMS" \
                  --backtitle "$back_title" \
                  --separate-output \
                  --ok-label "Download" \
                  --cancel-label "Cancelar" \
                  --extra-button --extra-label "Busca" \
                  --checklist \
"Atenção, a lista está categorizada em ordem alfábetica, sendo a primera tag,
'Nome do Álbum' e a segunda tag o nome do 'Artista'.
Utilize o 'DIRECIONAL' para navegar e o 'BACKSPACE' para selecionar o/os álbúms desejados." \
0 0 ${#tags[@]} ${tags[@]})
    [ "$?" = "3" ] && search
    status # Chamada função principal
    [ -z "$list" ] && break
   
    down=$(grep "$list" "$file_origin" | cut -d '%' -f 3,4 | sed 's/%/ /g')
    dialog --title "AGUARDE." --backtitle "$back_title" \
           --infobox \
    "Baixando Arquivos..." 0 0
    wget --user="$USER" --password="$PASSWORD" -P "$dir_music" ${down} >/dev/null 2>/dev/null
    [ "$?" = "0" ] && \
    dialog --title "FEITO!" --backtitle "$back_title" \
           --sleep 5 \
           --infobox \
"Download concluído, com sucesso!
É de extrema importância conferir o arquivo .md5 que está localizado na sua pasta:
$dir_music, para garantir que o arquivo não foi modificado." 10 80
    dialog --title "CONTINUA?" --backtitle "$back_title" --yesno "Deseja fazer mais Downloads?" 0 0
    status # chamada função
done # fecha loop principal
}
#-------END-FUNCTIONS----------#


########################
##Programa inicia aqui##
########################

#>>>>>> Configurações inicias
[ "$UID" = "0" ] && echo -e"${red}Usuário Root está habilitado... não é seguro.${end}" && exit 1
[ ! -e "$check_dialog" ] && echo -e "${red}Você precisa do dialog para prosseguir.${end}" && exit 1 
dir_music="$HOME/Anon-download" && [ ! -e "$dir_music" ] && mkdir "$dir_music" # Diretorio não existe? criamos.
#-------------------------#


#>>>>> TELA de BOAS VINDAS
while true; do
    dialog --title "BEM VINDO." --backtitle "$back_title" \
			     --help-button --help-label "Doar" \
			     --extra-button --extra-label "Saiba Mais" \
           --ok-label "INICIAR" \
	         --msgbox \
"Seja bem vindo ao $PRGNAM uma forma segura de baixar álbuns das suas bandas favoritas!

Pirataria é CRIME, por isso esteja ciente do que está fazendo...
Não nos responsábilizamos por mau uso dos arquivos aqui adquirido." 20 80
    case ${?} in # Qual botão extra aperto?
        3)
        dialog --title "SAIBA MAIS." --backtitle "$back_title" \
	             --msgbox \
"O projeto $PRGNAM é muito fácil de usar veja os procedimentos:
" 20 80;;

        2)
        dialog --title "DOAR." --backtitle "$back_title" \
	             --msgbox \
"Porque é interessante fazer uma doação para o projeto $PRGNAM?" 20 80;;

        1) exit ;;
       
        0) break ;;
    esac 
done # Fecha loop tela de boas vindas


#>>>>> MENU principal do anon.
while true; do
menu=$(
   dialog --stdout \
					--title "SELECIONE A CATEGORIA DESEJADA." --backtitle "$back_title" \
					--cancel-label "Sair" \
					--ok-label "Selecionar" \
				  --menu \
"Para navegar entre as categorias utilize o <DIRECIONAL> e para selecionar use o <BACKSPACE>" \
				  0 100 0 \
					"Filmes" "Completa" \
					"Album" "Avulso" \
)
status # Chamada função
case "$menu" in
    "Filmes")
				dialog --msgbox "Estamos em desenvolvimento. Aguarde." 0 0;;
          
		"Album")
        select_album ;; # Chamada função
esac

done # While principal
